約 300,741 件
https://w.atwiki.jp/banira777/pages/60.html
https //galge.btdstudio.co.jp/sp/gals_profile.php?gal_id=1190 no=1 源楓(HD)(18才) 女子高生 B98/W60/H85 https //galge.btdstudio.co.jp/sp/wallpaper/dl.php?gal_id=1190 no=1 ext=png size=1080x1980
https://w.atwiki.jp/banira777/pages/59.html
https //galge.btdstudio.co.jp/sp/gals_profile.php?gal_id=1941 no=1 劉備(HD)(24才) 武将 B98/W56/H86 https //galge.btdstudio.co.jp/sp/wallpaper/dl.php?gal_id=1941 no=1 ext=png size=1080x1980
https://w.atwiki.jp/yuyutoton/pages/4612.html
ロボパーツ一覧(五十音順) HD(ア行~ナ行 / ハ行~その他) BD(ア行~ナ行 / ハ行~その他) AM(ア行~ナ行 / ハ行~その他) BS(ア行~ナ行 / ハ行~その他) LG(ア行~ナ行 / ハ行~その他) HDJ AMJ BSJ LGJ コンバージョン 武器・その他 手持ち武器(メイン / サブ) 内蔵武器(メイン / サブ) 特殊効果付き(パーツ / 武器) チューニングパーツ AURAカートリッジ + 関連ロボ・パーツリンク表 クリックで展開 ----+----+----+----+----+----+----+-(関連リンク)-+----+----+----+----+----+----+---- ロボ ヴェルズニール パーツ HD / BD / AM / BS / LG / HDJ 関連リンク表の編集はこちらから ヴェルズニールHD レビュー コメント ヴェルズニールHD データ ◆基本データ 名称 アイコン タイプ サイズ 潜在能力(解放後Lv30以上,50以上) ランク スタック強化率 特殊効果 売却額 カスタマイズ特記事項 ヴェルズニールHD 空戦 M A+(?,?) C-5 2.0% ショック耐性10 270C$ なし ◆パーツデータ レベル 重量 コスト HP EN EN回復 射撃 格闘 歩行制限 飛行制限 歩行 飛行 跳躍 物防 ビ防 火防 電防 安定 耐遅 耐凍 1 13.0t 72 650 550 110 - - -t -t - - - - - - - - 5% 5% 30 13.0t 162 960 800 130 - - -t -t - - - - - - - - 7% 7% 50 13.0t 249 1180 980 144 - - -t -t - - - - - - - - 9% 9% 70 13.0t 378 1450 1200 160 - - -t -t - - - - - - - - 10% 10% 90 13.0t 506 1740 1440 165 - - -t -t - - - - - - - - 10% 10% ◆武装データ メインウェポン Type 攻撃力 弾速 射程 EN消費 チャージ 発射間隔 リロード スタン率 ブレ PVP補正 性質 FIRE BREATH 火炎343(~428~536~670~737)x16 500 320 25 0.2 0.15 0.2 1 静止中-移動中1 威力 -40%状態異常 +0% 特性 弾丸敵味方貫通 必要安定 ? ◆合成レシピ + ... 部位 素材 階級 成功確率 金額 備考 HD 深界の羽根 x50(Safety) - 100% 10,000C$ 入手方法 ロボ販売 - なし パーツ販売 - なし ドロップ - ディープバルチャー 共通ドロップ その他 - ディープバルチャー 突発ミッション・ヴェルズニール戦 報酬 パーツ合成 レビュー ヴェルズニールのHD。 内蔵武器のファイアブレスは、敵味方を貫通する青い火炎弾を連射する。 高威力で弾速と射程にも優れる。癖が無く扱いやすい性能。 2023/11/2のアップデートで、突発ミッション新報酬の深界の羽根を50枚用いて合成出来るようになった。 また、パーツランクがRからCに変更されトレード可能になった。 長所 内蔵メインの威力が高く、使い勝手もいい。 ステータスも良好で、HPとEN量が多い。 短所 とにかく入手難度が高すぎる。 突発ミッションは非常に難しい上にパーツが出る確率がかなり低い。報酬も複数種あるため、これが出るとは限らない。 共通ドロップで出る確率はさらに低い。 合成で作るにも必要素材が非常に多く、突発ミッションを50回クリアする必要がある(サドンアイテムを自分で使う場合は減るが、Mtが必要)。 性能は良好だが、入手難度に見合うかは微妙なところ。 コメント 名前 コメント 誤りの指摘、追加情報など、このページの内容に関するコメントのみお願いします。 上記以外については質問雑談用ページの方でお願いします。
https://w.atwiki.jp/yuyutoton/pages/1251.html
ロボパーツ一覧(五十音順) HD(ア行~ナ行 / ハ行~その他) BD(ア行~ナ行 / ハ行~その他) AM(ア行~ナ行 / ハ行~その他) BS(ア行~ナ行 / ハ行~その他) LG(ア行~ナ行 / ハ行~その他) HDJ AMJ BSJ LGJ コンバージョン 武器・その他 手持ち武器(メイン / サブ) 内蔵武器(メイン / サブ) チューニングパーツ AURAカートリッジ ボイスメモリ ----+----+----+----+----+----+----+-(関連リンク)-+----+----+----+----+----+----+---- ロボ ビッグマンテス / ビッグマンテスNEO / ビッグマンテスO / ビッグマンテスGOLD パーツ LG / LG2 / GOLDLG? / BD / GOLDBD? / HD / HD2 / HD3 / GOLDHD? / BS / GOLDBS? / AM / AM2 / GOLDAM おすすめ/HD/ビッグマンテスHD2データ 入手方法 解説 長所 短所 コメント おすすめ/HD/ビッグマンテスHD2 データ ◆基本データ 名称 アイコン サイズ 潜在能力(解放後Lv30以上) Rank 特殊効果 売却額 カスタマイズ特殊制限 ビッグマンテスHD2 M A(?) R-1 なし 378C$ なし ◆パーツデータ レベル 重量 コスト HP EN EN回復 射撃 格闘 歩行制限 飛行制限 歩行 飛行 跳躍 物防 ビ防 火防 電防 安定 耐遅 耐凍 1 10.0t 37 160 110 63(0) x x 0.0t 0.0t x x x x x x x x x% x% 30 10.0t 93 305 180 93(0) x x 0.0t 0.0t x x x x x x x x x% x% 50 0.0t 0 0 0 0 (0) x x 0.0t 0.0t x x x x x x x x x% x% 入手方法 ロボ販売 - 惑星ゲルニア ソロネッツシティ パーツ販売 - なし ドロップ - なし その他 - なし 解説 ビッグマンテスNEOのHD 長所 短所 コメント GOLD追加しました。 -- たなか。8 (2012-01-25 21 11 11) 名前 コメント 誤りの指摘、追加情報など、このページの内容に関するコメントのみお願いします。 質問など、上記以外についてはしたらば掲示板へお願いします。
https://w.atwiki.jp/slashdrop/pages/66.html
クラン規約 チート等の不正行為や荒らし行為など他人に不快な思いをさせる行為は一切禁止です。 不正行為当が発覚した場合は強制追放とさせていただきます。 試験内容 クランメンバー1人とグラタイマンをする(勝敗は関係ありません) 蒼式、海苔式等の技をクランメンバーに見せる。 以上の試験の総合結果で合否を判断します。
https://w.atwiki.jp/yuyutoton/pages/4749.html
ロボパーツ一覧(五十音順) HD(ア行~ナ行 / ハ行~その他) BD(ア行~ナ行 / ハ行~その他) AM(ア行~ナ行 / ハ行~その他) BS(ア行~ナ行 / ハ行~その他) LG(ア行~ナ行 / ハ行~その他) HDJ AMJ BSJ LGJ コンバージョン 武器・その他 手持ち武器(メイン / サブ) 内蔵武器(メイン / サブ) 特殊効果付き(パーツ / 武器) チューニングパーツ AURAカートリッジ + 関連ロボ・パーツリンク表 クリックで展開 ----+----+----+----+----+----+----+-(関連リンク)-+----+----+----+----+----+----+---- ロボ ハクメンスクナ パーツ HD? / BD? / AM? / LG? / LG2? 関連リンク表の編集はこちらから ハクメンスクナHD レビュー コメント ハクメンスクナHD #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (HakumensukunaHD-1.png) データ ◆基本データ 名称 アイコン タイプ サイズ 潜在能力(解放後Lv30以上,50以上) ランク スタック強化率 特殊効果 売却額 カスタマイズ特記事項 ハクメンスクナHD #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (HakumensukunaHD.png) 陸戦 L S(?,?) R-5 2.0% ショック耐性10特効 レイドボス 未調査 C$ なし ◆パーツデータ レベル 重量 コスト HP EN EN回復 射撃 格闘 歩行制限 飛行制限 歩行 飛行 跳躍 物防 ビ防 火防 電防 安定 耐遅 耐凍 1 10.0t 62 750 600 120 - - -t -t - - - - - - - - 7% -% 30 10.0t 162 1050 840 140 - - -t -t - - - - - - - - 11% -% 50 10.0t 289 1310 1050 158 - - -t -t - - - - - - - - 13% -% 70 10.0t 402 1500 1200 170 - - -t -t - - - - - - - - 15% -% 90 10.0t 534 1800 1440 175 - - -t -t - - - - - - - - 15% -% 入手方法 ロボ販売 - なし パーツ販売 - プレミアムフィールド レイドコイン交換所(レイドコインx500) ドロップ - なし その他 - 強襲レイドバトル ハクメンスクナ戦 クリア報酬 レビュー ハクメンスクナのHD。 目が4つある狐型という異様なデザインをしている。後頭部から髪が伸びており、常に風になびく。 長所 HPとEN量がかなり多く、全体的に高性能。 短所 レイドバトルは難易度が高く、開催時間が限られている上にパーツが出る確率はかなり低い。 報酬パーツは他にも複数あるため、中々出ないことも多い。 コインで交換する場合も500枚必要と、入手難度が非常に高い。 底部がヘこんでいる割に首パーツが無いため、載せるBDによっては埋もれたり、横から見たときに大きめの隙間が空いたりする。 コメント 名前 コメント 誤りの指摘、追加情報など、このページの内容に関するコメントのみお願いします。 上記以外については質問雑談用ページの方でお願いします。
https://w.atwiki.jp/yuyutoton/pages/1248.html
ロボパーツ一覧(五十音順) HD(ア行~ナ行 / ハ行~その他) BD(ア行~ナ行 / ハ行~その他) AM(ア行~ナ行 / ハ行~その他) BS(ア行~ナ行 / ハ行~その他) LG(ア行~ナ行 / ハ行~その他) HDJ AMJ BSJ LGJ コンバージョン 武器・その他 手持ち武器(メイン / サブ) 内蔵武器(メイン / サブ) チューニングパーツ AURAカートリッジ ボイスメモリ ----+----+----+----+----+----+----+-(関連リンク)-+----+----+----+----+----+----+---- ロボ ジャガーアーム / キングジャガーアーム / アサルトジャガー パーツ LG / LG2 / BD / BD2 / BD4 / HD / HD2 / HD4 / BS / BS2 / AM / AM2 / AM4 おすすめ/HD/ジャガーアームHD2データ 入手方法 解説 長所 短所 コメント おすすめ/HD/ジャガーアームHD2 ページレイアウトテスト1 データ ◆基本データ アイコン パーツ名 サイズ 潜在能力 表記コスト Rank 売却額 カスタマイズ特殊制限 ジャガーアームHD2 M A+ 10 C-2 109C$ なし ◆パーツデータ レベル コスト HP EN EN回復量 歩行制限 飛行制限 重量 射撃 格闘 防御 安定 歩行速度 飛行速度 ジャンプ 1 +10 120 90 45 (-) 0.0t 0.0t 9.5t 1 1 1 1 1 1 1 30 +55 270 190 75 (-) 0.0t 0.0t 9.5t 1 1 1 1 1 1 1 入手方法 ロボ販売 - 惑星ガルド ピアトロ遺跡B6F パーツ販売 - なし ドロップ - なし その他 - なし 解説 キングジャガーアームのHD ジャガーアームHDよりもHPとENは増えているが、EN回復量は変化なし。重量が1.5t増えている。 長所 短所 コメント 名前 コメント 誤りの指摘、追加情報など、このページの内容に関するコメントのみお願いします。 上記以外についてはしたらば掲示板の方でお願いします。
https://w.atwiki.jp/ps4matome/pages/23.html
HDDベイカバー HDDベイカバー『龍が如く 維新!』オリジナル PS4 HDDベイカバー 『龍が如く 維新!』オリジナル PS4 HDDベイカバー 抽選で100名にプレゼント。 応募期間:2014年3月10日15時まで http //store.sony.jp/Special/Game/Ps4/Ryu-ga-gotoku-ishin/
https://w.atwiki.jp/yuyutoton/pages/4388.html
ロボパーツ一覧(五十音順) HD(ア行~ナ行 / ハ行~その他) BD(ア行~ナ行 / ハ行~その他) AM(ア行~ナ行 / ハ行~その他) BS(ア行~ナ行 / ハ行~その他) LG(ア行~ナ行 / ハ行~その他) HDJ AMJ BSJ LGJ コンバージョン 武器・その他 手持ち武器(メイン / サブ) 内蔵武器(メイン / サブ) 特殊効果付き(パーツ / 武器) チューニングパーツ AURAカートリッジ + 関連ロボ・パーツリンク表 クリックで展開 ----+----+----+----+----+----+----+-(関連リンク)-+----+----+----+----+----+----+---- ロボ ゴアヴェルート パーツ HD / BD / AM / BS / LG 関連リンク表の編集はこちらから ゴアヴェルートHD レビュー コメント ゴアヴェルートHD データ ◆基本データ 名称 アイコン タイプ サイズ 潜在能力(解放後Lv30以上,50以上) ランク スタック強化率 特殊効果 売却額 カスタマイズ特記事項 ゴアヴェルートHD NO IMG 陸 M ?(?,?) R-5 2.0% 覚醒対応ウィルス耐性5ショック耐性10 未調査C$ なし ◆パーツデータ レベル 重量 コスト HP EN EN回復 射撃 格闘 歩行制限 飛行制限 歩行 飛行 跳躍 物防 ビ防 火防 電防 安定 耐遅 耐凍 1 10.0t 53 750 600 130 - - - - - - - - - - - - 5% -% 30 10.0t 133 1060 850 143 - - - - - - - - - - - - 7% -% 50 10.0t 269 1420 1150 158 - - - - - - - - - - - - 9% -% 70 10.0t 355 1600 1300 168 - - - - - - - - - - - - 10% -% 90 10.0t 479 1920 1560 170 - - - - - - - - - - - - 10% -% 入手方法 マニモdeメガガチャSP レビュー ゴアヴェルートのHD。 2022年10月20日実装。 覚醒状態では額のV字アンテナが折りたたまれ、鬼の角のようなパーツが現れる。 マスク部分は展開してキバをむき出しにしたような形状に変化する。 長所 短所 コメント 誤りの指摘、追加情報など、このページの内容に関するコメントのみお願いします。 上記以外については質問雑談用ページの方でお願いします。
https://w.atwiki.jp/sm4wiki/pages/19.html
ここは? 資料が英語ばかりの鬼門「HDMA」の説明らしき物です。 しかしHDMAはおろかWikiの編集も付け焼刃なのでグダグダです。 墓場のうんちくが来るまでの間に合わせってことでよろしく。 目次 ここは? [#h9022c01] 目次 [#m117020a] ?描画あれこれ [#qe5799a9] 走査線/Scanline、H-blank、V-blank [#s7ad179f] 実際に描画するには [#zee7eb24] ?まず何をすればいい? [#o1443331] ?PPU[#jff40a94] ?チャンネルとテーブル [#r8718413] テーブル [#j3bdbd92] チャンネル [#c977e4fd] 補足 チャンネルとテーブルの関係 [#b19b7240] ?実践1:サイズの異なるモザイク [#bc6548fb] チャンネルの設定 [#se5733dc] 転送内容と効果 [#n2307603] ?スクリーンあれこれ [#z4e04003] メインスクリーン、サブスクリーン [#g3bb16ac] 通常のLevelでの描画構成 [#mfc136d2] ?実践2:固定色層の応用を考える [#e9a40961] ?実践3:固定色層の応用を考える? [#g0553344] ?実践3:マルチレイヤースクロール [#q09f9eb3] 目的 [#y6f40c3f] RAM $210F [#ib0461ea] 極めて遠くにあるもの [#i86da7f5] それほど遠くないもの [#nd3b86ce] 補足 簡易説明 [#affb0983] ?ウィンドウあれこれ [#j74c93ce] コメント [#j4f3b79e] ?描画あれこれ 走査線/Scanline、H-blank、V-blank SFCでは画面が1秒間に60フレームほど描かれている気がします。 そのうちの1回を取り上げて考えてみましょう。 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (a.png) まずは左上の1ドットから描画がスタートし、右上に向かいます。 こうして一番上の1行が描かれます。 こういった横方向の行を「走査線 Scanline」と言います。 一番上の行がScanline 0です。 二番目の行がScanline 1です。 一行目が右まで描かれると、次は二行目の左端を描くことになりますが、 それまでに僅かな休み時間があります。これがH-blankです。 同様に、各Scanlineの描画が終わるたびにH-blankが来ます。 ゲーム画面の一番下の行はScanline 225 です。 ここまで描ききった後のScanline 226〜261にあたる期間は もうずっと休み時間です。これをV-blankと言います。 H-blankが土日だとしたら、V-blankは長期休暇みたいなものなので長いです。 その後はScanline 0に戻り、次のフレームの描画が始まります。 実際に描画するには さて、なぜこんなblankの話をしてるかというと、 描画情報の変更はこのblank中でやらなければならないからです。 だからLevelASMとかで直接描画情報を変えようとしても、 その瞬間が奇跡的にblank中だった場合しかうまく行かないことになります。 ただしいくつかのエミュではこういうのを考慮してないので blank無視しても正常に動作してしまう罠。 実機で動かなくてもエミュで動けばいいじゃんと見るかどうかは人によるけど… 最新のエミュでは、ちゃんと(?)blank無視した変更は反映されないようになってます。 じゃあblankのタイミングを狙うにはどうすればいいのか? 1つは、NMIという割り込みを利用する方法です。 画面下、Scanline 225を描いてV-blankに突入した瞬間、 流れているプログラムは一旦ストップ。 Snes $00816Aから始まるNMIルーチンが割り込んできます。 この中でblank中でなければならない処理を まとめてやってしまうというのです。 しかしblankはV-blankだけではありません。 H-blank中に描画設定を変えるとどうなるでしょう。 たとえば、Scanline0の前で明るい画面に設定し、 Scanline112の後のH-blankで暗い画面に設定すれば、 画面上半分(0〜112)は明るく、画面下半分(113〜225)は暗くなります。 このようにScanlineとScanlineの間で描画設定を変えることができます。 こういった、指定したH-blankで描画設定を変えるという処理を 自動的にやってくれる装置があります。 これがHDMAです。 ?まず何をすればいい? まずはHDMAを実装しましょう。いくつか方法があります。 ・CからBMF98567氏のHDMAを持ってきてインストール ・自作物展示場や、あっぷろだXのASM_Supporter 余計な機能がつきすぎるのが嫌でなければ、 ASM_Supporterをオススメします。 後先考えるとインスタントNMIがあった方が便利っちゃあ便利。 xkasの使い方は、あっぷろだXを参照。 いや、CMのつもりでは… 要望があれば、HDMAだけを入れるバージョンも作りますが。 ?PPU さんざん「描画設定を変える」とかいう表現を使ってきたわけですが、 とりあえずそれがどういうことかを知らなければなりません。 SFCにはPPUというユニットがあり、 こちらのプログラムとは独立して、描画処理を行ってます。 このPPUにこちらから働きかけます。 難しそうですが、結局は$21xxへのストアです。 $21xxに値をストアするというのがPPUとの手動通信です。 とりあえずすずめ愛好会のこのページを見てみましょう。 対してHDMAは自動通信です。 HDMAは「Scanline毎に$21xxの値を自動で変えてくれる物」 だということになります。 ?チャンネルとテーブル ついに実際に簡単なHDMA効果を作ってみます。 しかし、いきなりLevelASMから作るのは大変なので、 チートで作ることにしましょう。 テストもしやすいですし。 というわけで、代入可能なメモリビューアがついているエミュを用意しましょう。 ちなみに私が使っているのは音楽再現度的な意味でSNESGTです。 最新のβ版ではblankも考慮されている上、 指定アドレスにジャンプができるので旧版より使いやすいです。 テーブル まずHDMAをインストールしたROMを起動して好きなLevelに行き、ポーズ。 メモリビューアを開いて、HDMAテーブルのある位置を見ましょう。 初期設定ではテーブルの位置は、BMF98567氏のHDMAでは$7FFF00 ASM_Supporterでは$7FFE00と決められています。(現在の設定では$7F8190ですが変更可能) この先は後者として話を進めていきますので、 前者の場合は、各アドレスの3桁目をE⇒Fと脳内変換してください。 これからこのテーブルという領域に、 HDMAに必要な手続きを行っていきます。 そしたら先ほどインストールしたHDMA内部機構が 手続きに従い、自動的にHDMAを実行してくれるのです。 チャンネル HDMAには0〜7の8つのチャンネルがあります。 各チャンネルに「Scanline毎に$21xxの値を変える」という 一まとまりの仕事を割り振ることができます。 つまり最大同時に8種類の仕事をさせることができるのです。 ただ本家でもHDMAが使われている箇所があるので、 本家HDMAの使用チャンネルとかぶるとキャンセルされてしまうかも。 チャンネル3辺りを使えば心配無いでしょう。 本家HDMAの使用状況を知りたければ、 ここにあるデバッグ用Snes9xでHDMAをトレースしてみましょう。 補足 チャンネルとテーブルの関係 自分が理解するのに詰まったところなので勝手に補足。 さて、上記のようにHDMAには8つのチャンネルがあり、同時に最大8種類の効果を出すことができます。 色々弄れば色々効果が出せるわけですが難しい。そこで「必要事項を指定の場所に入れてくれれば後はやってやんよ」 というのがBMF98567氏の作ったものです。 まず「チャンネルの設定パラメータを入れるRAMアドレス」(=チャンネルごとのテーブル)がチャンネルごとに6つずつあります。 ここに転送方法とか弄る対象とか、設定を適宜入れていきます。 ここで設定した「転送したいデータを入れるRAMアドレス」(=転送内容のテーブル)に、弄る走査線の数などを入れていきます。 前者はxkasなどでプログラムを挿入するときに決めるもので、後から変更はできず、 後者は毎回自分の好きなところに指定する必要があります。 次項からその実践です。 ?実践1:サイズの異なるモザイク チャンネルの設定 まずはシンプルな1バイト入力系をやりましょう。 モザイク設定は$2106ですね。 テーブル周辺ははじめは全部00になっています。 ここにメモリビューアから入力していきます。 結論を言うと、下のスクショですね。 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (b.png) ここまで行く過程を説明しましょう。 まず「チャンネル3」を使うことに決めました。 図のチャンネル3テーブルに基本設定パラメータを書いていきます。 まずはチャンネルON宣言です。 テーブルの1バイト目には、下の表に従って値を入れましょう。 今回はチャンネル3なので、08ですね。 チャンネル 0 1 2 3 4 5 6 7 1バイト目の値 01 02 04 08 10 20 40 80 ただし、今すぐ入力するのはやめてください。 まだ設定が終わってないのにスイッチONにするのは自殺行為ですね。 軽くバグります。 2バイト目は、転送方式の設定です。 一番難しいところです。下の表を見ましょう。 2バイト目の値 1回分の処理の挙動 使用例 使用例で何が起こるか 00 1アドレスへ1byte書き $2106にXXを代入 モザイク設定がXXに 01 2アドレスへ1byte書き $2126にXX⇒$2127にYY ウィンドウ1左端XX、右端YY 02 1アドレスへ2byte書き $210FにXX、ついでYY レイヤー2 x座標がYYXXに 03 2アドレスへ2byte書き 拡大縮小回転マトリクス 2chに分けて画面に濃淡の演出使用してるゲーム例 アダムスファミリー 04 4アドレスへ1byte書き 思いつかん $2106は単純に1バイトを入力するものなので 00を入力します。 3バイト目は、弄る対象です。$21xxのxxを入力します。 今回は$2106モザイクなので、06です。 4〜6バイト目に、転送内容テーブルのありかを入力します。 空き場所ならどこでもいいですが、 今回は近くの$7FFE40に「転送内容」を書いていくことにします。 よって40 FE 7F 転送内容と効果 さて、ついに基礎設定が完了しました。 次はいよいよ「転送内容」を書いていきます。 さっき$7FFE40に指定したので、そこに書いていきましょう。 基本は「上から数えるScanline数⇒代入値」の繰り返しです。 こっからは好きなようにしていいですが… とりあえず上から40行分にサイズAの大モザイクをかけてみましょう。 $2106の設定はAFです。 よってまず「40 AF」と書いていきます。 画面全体にモザイクがかかるでしょうが、無視して次行きましょう。 次の40行分はモザイクをサイズ6と、少し小さくしてみます。 続きに「40 6F」と書きます。 次第に小さくして、最終的に「40 AF 40 6F 40 2F 40 00 (00)」としました。 その結果がスクショです。そのとおりになってますね。 ちなみに(00)は終了宣言です。 こうして、チートでHDMAを作ることができました。 あとは今回のチート入力を再現するLevelASMを組むだけです。 組み方は65C816プログラミングの方を見ましょう。 ?スクリーンあれこれ メインスクリーン、サブスクリーン このへんからだいぶ怪しい説明になります。 変なこと言ってたら直しちゃってください。 次のステップに進む前に メインスクリーン、サブスクリーンとかを知っておくといいです。 もう一度すずめ愛好会を見ましょう。 今回見るべきは、 $212C(メインスクリーン構成) $212D(サブスクリーン構成) $2131(カラー演算対象設定 $40から転記) $2132(固定色層の色) ただし、$2131に関しては、 毎フレームのNMIで$40からコピーされているで、 $2131を弄ってもすぐ潰されてしまいます。 かわりに$40を弄ればOKです。 描画される画面は、 スプライト・固定色・BG1・BG2・BG3・BG4といった層の 重ね合わせで構成されているのですが、 細かく言うともう少し複雑です。 これらの層をメインスクリーン・サブスクリーンにグループ分け。 私たちにはメインスクリーンだけが見えます。 内部でサブスクリーンというのを別に構成しておきます。 この結果を、「メインスクリーンのうちの背景層」に足し加える。(カラー演算) そういう足し算の結果、メインスクリーンの後ろにサブスクリーンがあるように見えます。 足し算というとわかりにくいですね。 サブスクリーンの内容を、プロジェクターで映し出すような感じです。 $40に関してはここでも説明しておきましょう。 $40の8つのbitを と表すとすれば、それぞれ スクリーン構成は メイン…BG1,SP サブ …BG2,BG3 $40 = 20 (+OB....)なので、加算対象は背景層のみ。 図示すると下のよう。#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (c.png) さて、ここで一つ考えてみましょう。 サブスクリーンが背景層に加算されていますが、 これをやめたらどうなるでしょう? $40の値を20⇒00にしてみましょう。 「BG2、BG3、固定色」が見えなくなります。 では、背景層だけでなく、BG1にも加算するとどうなるでしょう。 $40の値を、20⇒21にしてみましょう。 プロジェクターが背景層だけでなく、レイヤー1にも照射をするという感じで、 レイヤー1にサブスクリーンの内容が映ってしまいます。 つまり、レイヤー1が透けているように見えます。 同様に、スプライトにも照射して透けさせることができますが、 スプライトのうち「前面に表示」設定のタイルは どういうわけか特別扱いを受けているようです。 こういった加算の影響を受けません。 お化け屋敷ではこれを利用して、 透けたテレサ・透けないテレサを区別しているようです。 さて、これを見ていると、 別にBG1,2,3,スプライト全てをメインスクリーンに設定してもいい気がします。 何故こんな回りくどいことをしているのか。 それは、スプライトのうち「背面に表示」設定のタイルのためです。 こう設定すると、タイルはメインスクリーンの一番後ろに行きます。 BG2をメインスクリーンに設定すると、タイルがBG2背景の後ろに表示されます。 要するに、ピーパックンとかが背景の後ろに消えてしまうのです。 一方、レイヤー2を使ったマップでは、 別にスプライトがレイヤー2に隠れても問題ありません。 なのでここではBG2はメインスクリーンに設定されています。 ?実践2:固定色層の応用を考える さて、上の図の中に、固定色層というのがありますね。 これについて考えてみましょう。 こいつは$2132での色設定に従った単色層です。 見ての通りSMWの通常Levelでは、これはBGカラーとして使われています。 LMで設定された背景色は、RAM $0701-$0702 に保存されていて、 ここの値が毎フレーム$2132に代入されています。 ですから$0701を弄れば固定色層の色を変えることができ、 結果背景の色が変わります。 $2132を弄るHDMAをつけてみましょう。 Scanline毎に固定色層の色を変えるって事です。 こうなると固定色層はもはや単色ではなく、 グラデーションのかかったきれいな層となります。 やり方は前回とほとんど同じです。 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (d.png) ▲ウホッ、いい空… 1バイト目はスイッチ。 2バイト目は転送設定。「00」 3バイト目は弄る対象が$2132だから「32」 そして転送内容データの置き場所を設定して、 そこに「走査線数」⇒「値」⇒「走査線数」⇒「値」… HDMA自体の基本は全く同じ。 今回注意したいことは、$2132の使い方が少し変則的なことです。 $2132に入力するのは、「固定色層の色」という値ではなく、 「PPUよ、R/G/Bの値をxxに変えよ!」という命令なのです。 PPUの内部で固定色層の色が(R 12)(G 02)(B 0F)となっていたとします。 図にも書いてある通り、 20 + xx の値を$2132に入力すると、 PPUはRの値をxxにしろという命令を受け、 (R xx)(G 02)(B 0F)というふうに変えます。 60 + xx の値を$2132に入力すると、 PPUはRとGの値をxxにしろという命令を受け、 (R xx)(G xx)(B 0F)というふうに変えます。 もう気づいたでしょうが、$2132への入力一発では、 RGBに同時に異なる値を設定することはできません。 転送設定「00」では、1スキャンラインで入力できるのは一回だけ。 これが不自由だと思うなら、転送設定「02」を使えばいいかも。 その場合、転送内容のところには 「Scanline数」⇒「値(1byte目)」⇒「値(2byte目)」⇒「Scanline数」… となるので、3バイト1グループになることに注意。 さて、図のグラデーションの組み方ですが、 まずScanline0の描画開始前に「LMで設定した背景色$0701」の値が (R)(G)(B)に代入されています。今回は淡い青です。 Scanline 0 …「60」RとGを00にして深い青にする Scanline 2 …「9F」Bを1F(max)にして濃い青にする Scanline 5 …「62」RとGを02にして少し明るくする Scanline 9 …「63」RとGを03にしてもう少し明るくする : : とまあ、こんな感じでグラデーションをやっていってます。 狙い通りの色合いを出すなら、やはり見ながら調整できるチートが便利。 完成したらLevelASMを組みましょう。 ?実践3:固定色層の応用を考える? しかしCとかで流行っているグラデーション演出は、 さっきのとは少し違ったはずです。 なんていうか、背景ではなく画面全体に色が映っているかのような。 ?での知識を活かして、こちらをやってみましょう。 まずBG1-3、SPといったレイヤーを全てメインスクリーンに移してしまいます。 こうするとサブスクリーンにあるのは固定色層のみになります。 ここでこのサブスクリーンを、メインスクリーンの全ての層、 レイヤー123・スプライト・背景に映し出せばOKです。 $40に37を代入しましょう。 この時ピーパックンなどがレイヤー2の後ろに行ってしまう問題は、 どうしようもありません。副作用だと思ってください。 この場合はピーパックンを使わないか、 ピーパックンのグラフィックルーチンを弄って フラグによっては前面に出るようにするか。 インスタントNMIを使って$0303,xにしらみつぶしにTSB #$30しまくるか。 どのみちこの設定ではレイヤー1と2の間にスプライトを挟むことはできないので まあ使わないのが一番でしょう。 さて、今回はHDMAチートの前に準備が必要です。 まずメイン/サブスクリーンの設定をしなくてはなりません。 これらはSMWでは『$2131←$40』のようにサポートされていないので、 自作のLevelASMでやる必要があります。 まずはそこから作ってみましょう。 $212C(メインスクリーン構成)に17を代入し、 $212D(サブスクリーン構成)に00を代入します。 エミュでは普通にLevelASMから直接代入してもできるんですが、 本家SMWでPPUアクセスは全てNMIに回されているのを見るに、 恐らく実機では動かないのでしょう。 従って、インスタントNMIでやります。(CMじゃry) 講座も来たことだし、xkas用でいいよね! !NMI = インスタントNMIのJSLのありかとします。 CodeStart LDA $06B6;処理は開始1回だけで十分 BEQ INIT;ステージ開始時は00になっているからINITへ RTL INIT INC $06B6;2回は行わないようにする ;INCすることで、2回目以降は ;BEQ INITされない STZ $24;ステータスバー特別扱い解除 LDA #$01; TSB $06AD; LDA #$37;固定色層を、全レイヤーに投射 STA $40 JSL !NMI;次のV-blankのときに JSL NMIset;JSL NMIsetが行われるよう予約 RTL NMIset LDA #$17;予約内容 STA $212C;メインスクリーン:全部 STZ $212D;サブスクリーン :固定色のみ RTL このLevelASMを入れたステージに行ってみましょう。 画面全体が背景色を帯びていることだと思います。(マリオは無事) $701-2を弄って、色が変わることを確認しましょう。 本来背景色だったものを前面に持ってくるギミックなので、 もともと背景色があまり使われていないスイッチ宮殿や、城等でやると映えます。 さて、単色では物足りないなら、ここでHDMAです。 背景グラデーションの時と全く同じなので、図だけを投下しておきます。 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (e.png) LevelASMコードも投下しておきます。 ただし、CONTENTの内容がとても長いので、 外部ファイルGRAD.binとして入れるようにしています。 自信のある人は解読してみてください。 ?実践3:マルチレイヤースクロール 目的 今回のテーマは「『転送内容データ』を動的に変化させる」です。 「背景としてのレイヤー2」を3D的にスクロールさせることが目的です。 今回は下の背景を3Dスクロールさせてみましょう。 (既にHDMAグラデーションをかけてあります。) #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (f.PNG) そうそう、前回言い忘れてましたが、 加算グラデーションをかける時は、元の色を暗めにしておきましょう。 加算なので、RGB各成分を元の色より下げることはできませんし。 さて、普通の設定では、 雲も海のどの部分も、同じ分だけスクロールしてしまいます。 これは奇妙。 近景は速く、遠景は遅く動いて見えるようにしたいものです。 RAM $210F $210Fはレイヤー2スクロールのx座標。 むしろレイヤー2を映すカメラのx座標と言ったほうが分かりやすいかも。 LunarMagicで見るような、レイヤー2の一枚絵を 正面から映しているカメラを想像しましょう。 xが大きいほど、カメラは右にあることになります。 xを増やすと、カメラは右に進み、 すると映像ではレイヤー2が左に流れていくことになります。 図も載せときます。 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (g.png) 普段はRAMの$1466から転記されているこの値。 これをScanlineごとに変えればいいのですが、 変える値は前回までと違って、リアルタイムに変化します。 「転送内容データ」は、今までどおり 「走査線数」⇒「転送内容(2byte)」⇒ の繰り返しです。 RAMに置いてあるこいつを、 ASMによって「転送内容(2byte)」の部分を 絶えず書き換えることが必要になります。 で、どういう値に書き換えればいいのか。 極めて遠くにあるもの 太陽・星・雲などがそうです。ここまで遠くにあると、 マリオがどこにいても同じように見えるはずです。 よって観測者の位置(レイヤー1座標)とは関係無く動くはずです。 今回は画面上の雲がそれにあたります。 この背景では雲が上中下3列あるので、 試しに各列が違う速度で左に流れるようにしてみましょう。 左に流すにはカメラを右に動かせばいいので、 「$210Fの値がどんどん増える。」ようにします。 各列の幅を計ったら、1F,20,20でうまくいったので、 「転送内容データ」のはじめの部分は 1F xxxx 20 yyyy 20 zzzz。 xxxx、yyyy、zzzzそれぞれに「違う速度で増えていく値」 がストアされるようにすればいいのです。 組み方わかる人は次の見出しまで飛ばしましょう。 まずはASMの側でカウンターを用意しましょう。 空きRAMならどこでもいいのですが… 今回は$7FFEF0を使ってみます。 毎フレームこれに1を足す。 これで$7FFEF0は「毎フレーム1増える値」として機能します。 次に$7FFEF0を使って雲をスクロールさせます。 「毎フレーム1増える」というのはマリオの歩行速度並なので 雲にしては速すぎです。 では、『$7FFEF0の1/2倍』という数字はどうでしょうか。 これは「2フレームに1増える値」として機能します。 スピードが半分になりました。 同様に、$7FFEF0の1/4倍、3/8倍という数字を使えば、 流れるスピードは1/4倍、3/8倍になります。 そこで今回は、 「上段の雲…スピード1/2」 「中段の雲…スピード3/8」 「下段の雲…スピード1/4」 としてみます。 1/2とか1/4をやるなら、ASLやLSR命令を覚えましょう。 12345という数字の各桁を右に動かすと、1234.5。1/10になってしまいます。 各桁を左に動かすと、123450。10倍になってしまいます。 これは10進法だからです。 2進法の世界では、桁を右に動かすと1/2、左に動かすと2倍になります。 LSR(右)、ASL(左)という命令がそれにあたります。 $7FFEF0にLSRした値を「上段の雲があるScanlineでの$210F値」に設定。 もう一度LSRした値を「下段の雲があるScanlineでの$210F値」に設定。 さて、中段の3/8倍という処理ですが、 $7FFEF0を『3倍してから8で割る』ことによって可能です。 注意すべきは、『8で割ってから3倍する』ではダメなこと。 なぜなら、『8で割った』値は、「8フレームに1回1増える」。 それを3倍すると、「8フレームに1回3増える」。 こういうカックカクな動きになってしまうからです。 前者をやれば「8フレームに3回1増える」ので、滑らかです。 $7FFEF0をLDA ⇒ ASL ⇒ $7FFEF0をADC ⇒ LSR3回 によって中段の値が得られます。 それほど遠くないもの 星や雲ほど遠くにある物でないならば、 こちらの動きによって見え方がかわります。 今回は海がそうです。 視点を動かしていくと、 近くのものほど速く動き、遠くのものほど遅く動きます。 視点からの遠さが同じものは、同じ速さで動くはずです。 背景の物体がもし、マリオやレイヤー1と同じ遠さにあるならば、 レイヤー1と同じ速さで(視点の動きに対し)スクロールするはずです。 このとき、$210F = レイヤー1x座標 これで視点の動きに対するスクロールが再現できます。 次に、その背景物体自体が動いてた場合。 視点の動きに加え、さらに物体自体の動きも反映させるには、 $210F = レイヤー1 x座 - 物体の移動値 なぜ引き算かというと、雲の時と同じです。 レイヤー2の静止した一枚絵が右に動く様子を再現するには、 逆にカメラを左に動かすことになるからです。 さて、以上は物体がマリオのそば、レイヤー1と同じ層にいた時の話です。 もっと遠くにあれば、視点に対してもっとゆっくりスクロールするはず。 $210F =(レイヤー1 x座 − もしレイヤー1の距離にいた場合の物体の移動値)× 距離補正 ~ これが一応最終公式となります。 今回の海に適用するとどうなるでしょう。 レイヤー1座標は$1462から得られます。 次にもし海がレイヤー1の距離、つまりマリオの足元にあった場合の移動値を考えます。 今回は波が左にマリオの歩行距離程度の速度で流れるという風にしてみましょう。 波の移動値は毎フレーム-1です。これを引くということは、 「毎フレーム+1する値を足す」のと同じです。 雲の時のカウンタ$7FFEF0を流用しましょう。 また、波なので、左に流れながらも多少ゆらゆらさせてもいいかもしれません。 「ゆらゆらする値」をさらに足しこめばOKです。 「ゆらゆらする値」の取り方の一例 LDA $14 (タイマ) AND #$0F TAX LDA WAVE,x : : WAVE db $00,$00,$00,$01,$01,$02,$03,$03 db $04,$04,$04,$03,$03,$02,$01,$01 こうして、$1462 + $7FFEF0 + WAVE,x という 『波がマリオのそばにあったときの値』を得ました。 とりあえずこれを$7FFEF2に保存しておきます。 その後最後に、距離補正を加えるために数字を掛け、 各Scanlineの$210F値としてストアします。 この掛ける数をScanline毎に色々変えることで、 視点からの距離の奥行きを表現することができます。 これがHDMAで3Dを擬似的に再現できる仕組みです。 (Scanline毎にしか奥行きを変えれないので、 同じScanlineに異なる遠さの物が置けない制限はあるが) さて、海という大変なテーマを選んでしまいました。 どのScanlineも遠さが違います。 かなり多くの段階に分けて距離補正値を変えなくてはなりません。 めんどくさいので20段階くらいに留めます。十分でしょう。 一番近い所でも、マリオよりは遠くにあるので、1倍よりは小さい。 一番遠い所、つまり水平線付近は相当遠いので、1/32倍くらいでOKしょう。 その間を20段階くらいにわけて設定する。 計算方法は自由ですが、自分が思いつく中で一番早いやり方を紹介します。 7/8, 3/4, 5/8, 1/2 7/16, 3/8, 5/16, 1/4 7/32, 3/16, 5/32, 1/8 7/64, 3/32, 5/64, 1/16 7/128,3/64, 5/128,1/32 ラインナップは上の通り。右に読んでいけば大きい(近い)順です。 分子が同じものをひとまとめに計算していきます。 まず$7FFEF2(元の値)から、 元の値の2倍⇒$7FFEF4 (ASL) 元の値の3倍⇒$7FFEF6 (更に$7FFEF2を足す) 元の値の5倍⇒$7FFEF8 (更に$7FFEF4を足す) 元の値の7倍⇒A (更に$7FFEF4を足す) と計算します。 あとはLSRLSR...で分子7のものを全部計算しつつストア。 $7FFEF8をLDAしてLSRLSR...で分子5のものを全部計算しつつストア。 同様に分子3、分子1も全部計算ストアしてミッションコンプリート。 完成品と、LevelASMコードを http //mario.ellize.com/up/src/smw_2022.zipにおいておきます。 紛失したようです。持ってる人居たら、WikiにUPお願いします。 もっといい計算法があったら言ってね。 補足 簡易説明 いきなりハードな内容で、うわぁああああとなった人が多そうなので、 まとめ兼1番簡単な多重スクロールの説明を勝手に補足。 まず雲のような、マリオとは関係なく画面を流れていくものについて。 レイヤー2の位置を毎フレーム1増やせばOK、と考える。(増やすと左に流れますね。) さて、「? 弄る走査線の本数」「? $210Fに入れたい値」をテーブルに書き込んでいくわけですが、 要するに?に毎フレーム1足せばいいだけです。 REP #$20;2byte扱うんで必要ですね。 LDA ? INC A STA ? SEP #$20;元に戻す。 これだけですね。とっても簡単。 INCの数を増やせば馬鹿みたいに早くなるし、 上を参考に何フレームに何回、という風にすればスピードも自由自在です。 次にマリオと関係して動くもの。 上の例では独立して動きつつ、マリオと関係しても動く海なので難しいですね。 ここでは地面でも山でもいいから、勝手には動かないもので練習。 レイヤー1と関係させて動かすことにしましょう。 $1462(レイヤー1の位置)の値をそのまま?に入れれば、レイヤー1とまったく同じ動きをします。 その走査線の部分だけ「レイヤー2スクロール固定」とおんなじことですね。 半分の速度で動かすには… REP #$20;2byte(ry LDA $1462 LSR A;この辺を変えることで、スクロールの早さが変わります。 STA ? SEP #$20;元に(ry これだけです。LSRの回数を増やしたりして、スクロールスピードを変えることができますね。 ちなみに$1462でなく$1466(レイヤー2位置)でもOK。 その場合LMで設定したレイヤー2のスピードに影響を受けます。 以上を理解してもう一回上を内容を読めば、理解しやすいかも? ?ウィンドウあれこれ 工事中 いよいよ講義1単位分程度のボリュームになってきた(笑)。 コメント